﻿using System;
using System.Collections.Generic;

namespace Domain.DTOs.RBAC
{
    /// <summary>
    /// 用户数据传输对象
    /// 原DTO名: UserDTO（字段命名已规范化）
    /// </summary>
    public class UserDTO
    {
        /// <summary>
        /// 用户ID（主键）
        /// 原字段名: Userid
        /// 修改后字段名: Id
        /// </summary>
        public long Id { set; get; }

        /// <summary>
        /// 用户编号（工号）
        /// 新增字段
        /// </summary>
        public string UserCode { set; get; }

        /// <summary>
        /// 用户登录名/账号
        /// 原字段名: Username
        /// 修改后字段名: UserName
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 真实姓名
        /// 原字段名: Realname
        /// 修改后字段名: RealName
        /// </summary>
        public string RealName { get; set; }

        /// <summary>
        /// 部门ID
        /// 原字段名: Departmentid
        /// 修改后字段名: DepartmentId
        /// </summary>
        public long DepartmentId { get; set; }

        /// <summary>
        /// 部门名称
        /// 原字段名: Departmentname
        /// 修改后字段名: DepartmentName
        /// </summary>
        public string DepartmentName { get; set; }

        /// <summary>
        /// 角色ID
        /// 原字段名: Roleid
        /// 修改后字段名: RoleId
        /// </summary>
        public long RoleId { get; set; }

        /// <summary>
        /// 角色名称
        /// 原字段名: Rolename
        /// 修改后字段名: RoleName
        /// </summary>
        public string RoleName { get; set; }

        /// <summary>
        /// 手机号码
        /// 原字段名: Phone（保持不变）
        /// </summary>
        public string? Phone { set; get; }

        /// <summary>
        /// 电子邮箱
        /// 原字段名: Email（保持不变）
        /// </summary>
        public string? Email { set; get; }

        /// <summary>
        /// 备注信息
        /// 新增字段
        /// </summary>
        public string? Remark { get; set; }

        /// <summary>
        /// 用户权限列表（树形结构）
        /// 原有字段：包含用户通过角色获取的所有权限
        /// </summary>
        public List<PermissionDTO>? Permissions { get; set; }
    }
}
